package com.cskaoyan.service;

import com.cskaoyan.bean.MarketCategory;
import com.cskaoyan.bean.chenfeng.vo.CategoryIndexVo;
import com.cskaoyan.bean.chenfeng.vo.CategoryL1Vo;
import com.cskaoyan.bean.chenfeng.vo.CategorySimpleL1Vo;
import com.cskaoyan.bean.leihao.vo.GoodsCategoryVo;
import com.cskaoyan.bean.leihao.vo.WxGoodsListVo;
import com.cskaoyan.bean.chenfeng.vo.CurrentCategoryVo;
import com.cskaoyan.bean.param.CommonData;

/**
 * 商品类目Service接口
 * [后台系统 → 商场管理 → 商品类目]
 *
 * @author Chen_Feng
 * @since 2022/06/26 20:43
 */

public interface CategoryService {

    // 获得L1级别的商品类别以及其子类
    CommonData<CategoryL1Vo> getL1CategoryWithSub();

    // 仅仅获得L1级别的商品类目
    CommonData<CategorySimpleL1Vo> getL1Category();

    // 判断该类目名在其父类下是否已经存在
    boolean isCategoryExist(MarketCategory marketCategory);

    // 新增商品类目
    MarketCategory createCategory(MarketCategory marketCategory);

    // 修改商品类目信息
    boolean updateMarketCategory(MarketCategory marketCategory);

    // 删除指定的类目以及其子类类目
    boolean deleteCategoryWithSub(MarketCategory marketCategory);

    GoodsCategoryVo getCategoryByPid(Integer id);

    WxGoodsListVo getCategoryListByCategoryId(Integer brandId,String keyword,Integer categoryId, Integer page, Integer limit);

    // 获取所有的商品类目
    CategoryIndexVo getCateGoryIndex();

    // 获取指定的一级类目信息和其子类信息
    CurrentCategoryVo getCurrentCateGory(Integer id);
}
